package com.fa4j.system.settings.service;

import com.fa4j.common.base.model.RemoveCmd;
import com.fa4j.system.settings.model.Dict;
import com.fa4j.system.settings.model.DictBatchSaveCmd;
import com.fa4j.system.settings.model.DictCreateCmd;
import com.fa4j.system.settings.model.DictModifyCmd;
import jakarta.validation.Valid;

/**
 * 系统字典 服务接口
 *
 * @since 2025-06-12 16:58:22
 */
public interface DictService {

    /**
     * 新增系统字典
     *
     * @param cmd 新增参数
     * @return 系统字典
     */
    Dict create(@Valid DictCreateCmd cmd);

    /**
     * 编辑系统字典
     *
     * @param cmd 编辑参数
     * @return 系统字典
     */
    Dict modify(@Valid DictModifyCmd cmd);

    /**
     * 删除系统字典
     *
     * @param cmd 删除参数
     * @return 系统字典
     */
    Dict remove(@Valid RemoveCmd<Integer> cmd);

    /**
     * 批量保存字典项
     *
     * @param cmd 批量参数
     */
    void batchSave(@Valid DictBatchSaveCmd cmd);
}